Package Back
Class Node<T extends java.io.Serializable & java.lang.Comparable<T>>
- java.lang.Object
-
- Back.Node<T>
-
-
Constructor Summary
Constructors Constructor Description Node()
prazdny konstruktor, hodnota je null, potomkovia prazdny ArrayListNode(java.util.Scanner s)
konstruktor ktory sa vyuziva pri citani stromu z JSON suboruNode(T value, java.util.List<Node<T>> sons)
konstruktor nastavi hodnotu, potomkov a _find a _add ktore sa vyuzivaju pri animacii
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description double
balance()
najde najvacsieho syna, vypocita priemernu odchylku ostatnych synov od nehoint
compareTo(Node<T> node)
zavola private metodu compare ktora ma 2 Ostatne.Node parametre do ktorych vlozi this a parameter node priv metoda porovnava hodnoty v preorder poradi null je mensi ako hodnotaboolean
contains(T elem)
hlada v strome vrchol s danou hodnotou, ak hodnota nie je null, porovna ich inac porovna ci je aj hladana hodnota nullboolean
equals(java.lang.Object o)
vrati hodnost triedy a hodnotyNode<T>
findByNode(Node<T> node)
zavola funkciu findFather ak vrati null - vrchol sa v strome nenachadza vracia null ak vrati Ostatne.Node - vojde do jeho synov, najde pozadovany vrchol ktory vratiNode<T>
findByValue(T val)
urobi vrchol s touto hodnotou, zavola rovnaku funkciu s parametrom ktory je vrcholNode<T>
findFatherByNode(Node<T> n)
rekurzivne prechadza strom, kontroluje ci sa dany vrchol nachadza u niekoho v synoch, ak ano tak ho vratiNode<T>
findFatherByValue(T val)
urobi vrchol s touto hodnotou, zavola rovnaku funkciu s parametrom ktory je vrcholboolean
getAdd()
java.util.List<java.util.ArrayList<Node<T>>>
getByLevels()
boolean
getFind()
java.lang.String
getJSon(int odsadenie)
java.util.List<Node<T>>
getSons()
T
getValue()
int
hashCode()
int
height()
void
insertNode(int i, Node<T> node)
urobi vlozi Ostatne.Node do synov na urcene miestboolean
join(Node<T> node)
v podstrome rekurzivne vyhlada ci sa pozadovany vrchol nachadza niekde v podstrome ak ano, tak zavola privatnu funkciu ktora rekurzivne prida nove vrcholystatic void
main(java.lang.String[] args)
boolean
move(T _which, T _where)
pomocou parametrov najde "smerniky" na vrcholy s ktorymi sa bude pracovat, nasledne vrcholu _where prida do synov vrchol _which ktory odstrani z povodneho miestajava.lang.String
print()
boolean
remove(T val)
z hodnoty vytvori vrchol ktoremu nasledne v podstrome rekurzivne vyhladava otca, ak existuje,konstruktor tento vrchol mu odstrani zo synov, inac skontroluje ci sa nejedna o aktualny vrchol vtom pripade si vynuluje hodnotu a synovvoid
removeNode(Node<T> node)
void
setAdd(boolean add)
nastavenie _addvoid
setFind(boolean find)
nastavenie _findvoid
setSons(java.util.List<Node<T>> sons)
nastavuje synov vrcholuvoid
setValue(T value)
nastavuje hodnotu vrcholuint
size()
java.lang.String
toString()
-
-
-
Constructor Detail
-
Node
public Node(T value, java.util.List<Node<T>> sons)
konstruktor nastavi hodnotu, potomkov a _find a _add ktore sa vyuzivaju pri animacii- Parameters:
value
- hodnota vrcholusons
- list potomkov - ak null nastavi sa na prazdny ArrayList
-
Node
public Node()
prazdny konstruktor, hodnota je null, potomkovia prazdny ArrayList
-
Node
public Node(java.util.Scanner s)
konstruktor ktory sa vyuziva pri citani stromu z JSON suboru- Parameters:
s
- scanner z ktoreho sa rekurzivne citaju udaje
-
-
Method Detail
-
getFind
public boolean getFind()
- Returns:
- vracia premennu _find s ktorou pracuje animacia
-
setFind
public void setFind(boolean find)
nastavenie _find- Parameters:
find
- prideli sa do _find
-
getAdd
public boolean getAdd()
- Returns:
- vracia premennu _add s ktorou pracuje animacia
-
setAdd
public void setAdd(boolean add)
nastavenie _add- Parameters:
add
- prideli sa do _add
-
insertNode
public void insertNode(int i, Node<T> node)
urobi vlozi Ostatne.Node do synov na urcene miest- Parameters:
i
- pozicia kde sa ma Ostatne.Node vlozitnode
- Ostatne.Node ktory bude vkladany
-
getValue
public T getValue()
- Returns:
- vrati hodnoru vrcholu
-
setValue
public void setValue(T value)
nastavuje hodnotu vrcholu- Parameters:
value
- hodnota ktora sa priradi
-
setSons
public void setSons(java.util.List<Node<T>> sons)
nastavuje synov vrcholu- Parameters:
sons
- list ktory sa priradi
-
size
public int size()
- Returns:
- vracia pocet vsetkych podvrcholov + seba
-
height
public int height()
- Returns:
- vrati vysku stromu
-
balance
public double balance()
najde najvacsieho syna, vypocita priemernu odchylku ostatnych synov od neho- Returns:
- odchylka velkosti
-
join
public boolean join(Node<T> node)
v podstrome rekurzivne vyhlada ci sa pozadovany vrchol nachadza niekde v podstrome ak ano, tak zavola privatnu funkciu ktora rekurzivne prida nove vrcholy- Parameters:
node
- vrchol ktory ideme pripajat- Returns:
- ak je node null alebo sa nenachadza v podstrome vrati false inac true
-
remove
public boolean remove(T val)
z hodnoty vytvori vrchol ktoremu nasledne v podstrome rekurzivne vyhladava otca, ak existuje,konstruktor tento vrchol mu odstrani zo synov, inac skontroluje ci sa nejedna o aktualny vrchol vtom pripade si vynuluje hodnotu a synov- Parameters:
val
- hodnota vrcholu ktory ideme odstranit- Returns:
- ak otec neexistuje vrati false, inac true
-
move
public boolean move(T _which, T _where)
pomocou parametrov najde "smerniky" na vrcholy s ktorymi sa bude pracovat, nasledne vrcholu _where prida do synov vrchol _which ktory odstrani z povodneho miesta- Parameters:
_where
- hodnota vrcholu ktoremu sa bude pridavat syn_which
- hodnota vrcholu ktory sa bude premiestnovat- Returns:
- ak sa v strome nenachadza vrchol s tymito hodnotami vracia false inac true
-
contains
public boolean contains(T elem)
hlada v strome vrchol s danou hodnotou, ak hodnota nie je null, porovna ich inac porovna ci je aj hladana hodnota null- Parameters:
elem
- hladana hodnota- Returns:
- true ak sa v strome nachadza vrchol s touto hodnotou inac false
-
findFatherByValue
public Node<T> findFatherByValue(T val)
urobi vrchol s touto hodnotou, zavola rovnaku funkciu s parametrom ktory je vrchol- Parameters:
val
- hladana hodnota- Returns:
- ak sa v strome nachadza vrchol s touto hodnotou tak ho vrati jeho otca inac vrati null
-
findFatherByNode
public Node<T> findFatherByNode(Node<T> n)
rekurzivne prechadza strom, kontroluje ci sa dany vrchol nachadza u niekoho v synoch, ak ano tak ho vrati- Parameters:
n
- hladany vrchol- Returns:
- otec hladaneho vrcholu ak sa nachadza inac vrati null
-
findByValue
public Node<T> findByValue(T val)
urobi vrchol s touto hodnotou, zavola rovnaku funkciu s parametrom ktory je vrchol- Parameters:
val
- hladana hodnota- Returns:
- vrchol s pozadovanou hodnotou ak sa nachadza inac null
-
findByNode
public Node<T> findByNode(Node<T> node)
zavola funkciu findFather ak vrati null - vrchol sa v strome nenachadza vracia null ak vrati Ostatne.Node - vojde do jeho synov, najde pozadovany vrchol ktory vrati- Parameters:
node
- hladany vrchol- Returns:
- vrchol s pozadovanou hodnotou ak sa nachadza inac null
-
getByLevels
public java.util.List<java.util.ArrayList<Node<T>>> getByLevels()
- Returns:
- vrati list listov, kde jeden list reprezentuje jednu uroven stromu
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
- Returns:
- vrati hash vrcholu
-
equals
public boolean equals(java.lang.Object o)
vrati hodnost triedy a hodnoty- Overrides:
equals
in classjava.lang.Object
- Returns:
- true ak o je rovnakej triedy a hodnoty sa rovnaju, inak false
-
compareTo
public int compareTo(Node<T> node)
zavola private metodu compare ktora ma 2 Ostatne.Node parametre do ktorych vlozi this a parameter node priv metoda porovnava hodnoty v preorder poradi null je mensi ako hodnota
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
- Returns:
- vrati hodnotu premenenu na string po odkomentovani vypisuje rekurzivne aj podstrom vo formate this( son1( son11( .. ), .. ), son2( .. ), .. ))
-
print
public java.lang.String print()
- Returns:
- vratis strom v tvare: this --> son1 --> son11 --> son12 --> son2
-
getJSon
public java.lang.String getJSon(int odsadenie)
- Parameters:
odsadenie
- aby to pekne vyzeralo, pouziva sa odsadenie- Returns:
- vrati String stromu ktory je prisposobeny na ukladanie do JSONu
-
main
public static void main(java.lang.String[] args)
-
-